#pragma once

#ifndef __CORE_utils_H__
#define __CORE_utils_H__

#include "FLOW_core/namespace.h"
#include "FLOW_core/core_types.h"

namespace CORE
{
	template< typename T >
	void swap( T& a, T& b )
	{
		T c = a;
		a = b;
		b = c;
	}

	//! Utility Function to check if a string zero terminated is valid, true if the string is valid, false otherwise
	inline bool_t SzCheck( const char_t* apsz_s )
	{
		return ( apsz_s && apsz_s[ 0 ] );
	}

	//!Utility function to create a copy of a zero terminated string
	const char_t* SzCopy( const char_t* apsz_s );

}; //end namespace CORE

#endif
